﻿using System;

namespace _038_构造和继承
{
    // 子类必须声明自己的构造方法。例如，如果定义如下子类：
    public class BaseClass
    {
        public int X;
        public BaseClass() { }
        public BaseClass(int x) { this.X = x; }
    }

    public class SubClass : BaseClass
    {
        // 关键字base和this用法类似，但base关键字调用的是基类中的构造方法。
        // 基类的构造方法总是先执行，这保证了base的初始化发生在作为子类的特例实例化之前。
        public SubClass(int x) : base(x) { }
    }

    class Program
    {
        static void Main(string[] args)
        {
            SubClass s = new SubClass(123);
        }
    }
}